package Negocio;

import java.util.ArrayList;
import java.util.List;

import DTO.DTO_Cocina;
import DTO.DTO_Comanda;
import DTO.DTO_PedidoInsumo;
import DTO.DTO_Tarea;
import Entities.Entity_Cocina;
import Entities.Entity_PedidoInsumo;
import Entities.Entity_Tarea;

public class Cocina extends Area {
	
	private float horasPreparacion;
	private List<Tarea> tareas;
	
	
	public Cocina(){
		
	}
	
	public Cocina(int idArea, DepositoArea depositoArea,
			List<Comanda> comandas, Encargado encargado,
			List<PedidoInsumo> pedidoInsumos, int horasPreparacion) {
		
		super(idArea, depositoArea, comandas, encargado, pedidoInsumos);
		this.horasPreparacion = horasPreparacion;
		this.tareas = new ArrayList<Tarea>();
	}
	
	public Cocina(DTO_Cocina cocina){
		super(cocina);
		this.horasPreparacion=cocina.getHorasPreparacion();
		List<Tarea> tareas= null;
		for(DTO_Tarea tarea:cocina.getTareas())
		{
			tareas.add(new Tarea(tarea));
		}
		
	}
	
	public Cocina(Entity_Cocina cocina){
		super(cocina);
		this.horasPreparacion=cocina.getHorasPreparacion();
		List<Tarea> tareas= null;
		for(Entity_Tarea tarea:cocina.getTareas())
		{
			tareas.add(new Tarea(tarea));
		}
		
	}
	
	public float getHorasPreparacion() {
		return horasPreparacion;
	}

	public void setHorasPreparacion(float horasPreparacion) {
		this.horasPreparacion = horasPreparacion;
	}

	public List<Tarea> getTareas() {
		return tareas;
	}

	public void setTareas(List<Tarea> tareas) {
		this.tareas = tareas;
	}

	public void agregarTarea(Tarea tarea){
		this.tareas.add(tarea);
	}
	
	public boolean disponeHorario(int horas){
		if(horas >this.horasPreparacion){
			return false;
		}
		return true;
	}
	public void addTarea(Tarea t)
	{
		tareas.add(t);
		this.horasPreparacion= this.horasPreparacion-t.getHoras();
	}
	
	public DTO_Cocina toDTO(){
		DTO_Cocina co = new DTO_Cocina();
		co.setDepositoArea(this.getDepositoArea().toDTO());
		co.setEncargado(this.getEncargado().toDTO());
		co.setHorasPreparacion(this.getHorasPreparacion());
		co.setIdArea(this.getIdArea());
		List<DTO_Comanda> com = new ArrayList<DTO_Comanda>();
		for(Comanda c : this.getComandas()){
			com.add(c.toDTO());			
		}
		co.setComandas(com);
		List<DTO_PedidoInsumo> pedi = new ArrayList<DTO_PedidoInsumo>();
		for(PedidoInsumo p : this.getPedidoInsumos()){
			pedi.add(p.toDTO());
		}
		co.setPedidoInsumos(pedi);
		List<DTO_Tarea> tar = new ArrayList<DTO_Tarea>();
		for(Tarea t : this.getTareas()){
			tar.add(t.toDTO());
		}
		co.setTareas(tar);
		return co;
		
	}
	
	public Entity_Cocina toEntity(){
		Entity_Cocina co = new Entity_Cocina();
		co.setDepositoArea(this.getDepositoArea().toEntity());
		co.setEncargado(this.getEncargado().toEntity());
		co.setHorasPreparacion(this.getHorasPreparacion());
		co.setIdArea(this.getIdArea());
		/*List<DTO_Comanda> com = new ArrayList<DTO_Comanda>();
		for(Comanda c : this.getComandas()){
			com.add(c.toDTO());			
		}
		co.setComandas(com);*/
		List<Entity_PedidoInsumo> pedi = new ArrayList<Entity_PedidoInsumo>();
		for(PedidoInsumo p : this.getPedidoInsumos()){
			pedi.add(p.toEntity());
		}
		co.setPedidoInsumos(pedi);
		List<Entity_Tarea> tar = new ArrayList<Entity_Tarea>();
		for(Tarea t : this.getTareas()){
			tar.add(t.toEntity());
		}
		co.setTareas(tar);
		return co;
		
	}

}
